Technical Field
This disclosure relates to methods and systems supporting computing and data processing systems. Specifically, the disclosure relates to creating, managing, and reusing schema type definitions in Services Oriented Architecture (SOA) services, grouped in the form of libraries. Schema types are defined using Extensible Mark-up Language (XML).
Related Art
In Services Oriented Architecture (SOA), there are typically many communicating reusable services that are deployed in several machines. In large-scale enterprises, like host, eTrade, or Google for example, there could be thousands of different services deployed in thousands of machines. It is most common and efficient for these automated services to communicate with each other. Further, external access is also typically provided for some of these services. In communicating with each other, various different types of communication protocols may be used for efficiently and optimization reasons. Communication between service providers and service consumers can be accomplished using some pre-defined protocol. In the web services case, this protocol can be the Simple Object Access Protocol (SOAP). SOAP is a protocol for exchanging Extensible Mark-up Language (XML)-based messages over computer networks, normally using Hypertext Transport Protocol (HTTP/HTTPS).
XML is becoming increasingly popular as the format for describing and storing all forms of data, including message and interface formats for SOA services. Thus, providing support for storing, searching and manipulating XML type definition is an extremely important problem to address for SOA services. Information about the structure of specific data types may be specified in documents referred to as “XML schemas”. An XML schema is a description of a type of XML document, typically expressed in terms of constraints on the structure and content of documents of that type, above and beyond the basic syntactical constraints imposed by XML itself. An XML schema provides a view of the document type at a relatively high level of abstraction. For example, the XML schema for a particular type of XML document may specify the names for the data elements contained in that particular type of XML document, the hierarchical relationship between the data elements contained in that type of XML document, data types of the data elements contained in that particular type of XML document, etc.
U.S. Pat. No. 7,434,157 describes a programmable object model that allows a user to programmatically access and utilize a Namespace or schema library containing XML schema files and related XML-based resources for associating the schema files and XML-based resources with one or more documents and for customizing the functionality associated with the schema files and XML-based resources. The programmable object model also allows the user/programmer to remove schema files and other XML-based resources from association with previously associated documents.
U.S. Patent Application No. 2003/0115548 describes techniques for programmatically generating class libraries to represent the messages which may be sent/received according to specifications provided in a structured language message definition schema (or its equivalent, alternatively, such as a Document Type Definition or “DTD”). The disclosed techniques are very flexible, and are not limited to a single output programming language. Instead, a template-driven approach can be used to guide the generation process, where templates for multiple programming languages may be used to generate different versions of a class library, one for each programming language. The generation process can also be directed by rules specified in a rules file. The disclosed techniques can be used to generate class libraries for web services which have a service interface defined using only a schema reference. Migration can be evaluated programmatically, enabling much easier resolution of migration issues than is possible using prior art manual migration techniques.
U.S. Pat. No. 7,096,224 describes a method and system for allowing users to register XML schemas in a database system. The database system determines, based on a registered XML schema, how to store within the database system XML documents that conform to the XML schema. This determination involves mapping constructs defined in the XML schema to constructs supported by the database system. Such constructs may include datatypes, hierarchical relationship between elements, constraints, inheritances, etc. Once the mapping has been determined, it is stored and used by the database system to determine how to store subsequently received XML documents that conform to the registered XML schema.
U.S. Pat. No. 7,003,722 describes a method and system for converting a hierarchical data structure into a flat data structure based on a schema. The format of the hierarchical data structure may be XML. A hierarchical data structure conforming to a schema is loaded into an application program. The data structure includes elements and attributes linked together in a parent-child relationship. The schema defines the hierarchical relationships between the elements and attributes in the hierarchical data structure. After the hierarchical data structure conforming to the schema has been loaded, a plurality of layout rules is applied to the hierarchical data based on the schema to create a flat data structure. The layout rules determine how the hierarchical data will be inserted in the flat data structure. The layout rules may be applied by identifying properties in the schema which identify occurrence requirements for elements defined in the schema. After the layout rules have been applied to the hierarchical data, the hierarchical data is rendered into a spreadsheet by inserting the data in rows and columns.
Service development is interface-based (e.g., Web Services Description Language—WSDL) and the interface in turn depends on the data types used for requests and responses. In order to effectively support service re-use and version management, the underlying data types need to be managed properly. Conventional systems have not addressed this adequately.
Thus, a computer-implemented system and method for creating, managing, and reusing schema type definitions in SOA services, grouped in the form of libraries is needed.